package com.lzj.server.entity.video;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.lzj.server.entity.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;

@Schema(name = "Video", description = "视频信息表")
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("video")
public class VideoLibrary extends BaseEntity implements Serializable {
    @Serial
    private static final long serialVersionUID = 251074816107739012L;

    @TableId(value = "id", type = IdType.AUTO)
    @Schema(description = "主键，自增ID")
    private Long id;
    @TableField("user_id")
    @Schema(description = "所属用户ID")
    private Long userId;
    @TableField("category_id")
    @Schema(description = "分类ID")
    private Long categoryId;
    @TableField("title")
    @Schema(description = "视频标题")
    private String title;
    @TableField("video_attachment_id")
    @Schema(description = "视频附件ID")
    private Long videoAttachmentId;
    @TableField("video_label")
    @Schema(description = "视频标签 ，号拼接")
    private String videoLabel;
    @TableField("cover_attachment_id")
    @Schema(description = "视频封面附件ID")
    private Long coverAttachmentId;
    @TableField("like_count")
    @Schema(description = "点赞数")
    private Long likeCount;
    @TableField("view_count")
    @Schema(description = "观看数")
    private Long viewCount;
    @TableField("comment_count")
    @Schema(description = "评论数")
    private Long commentCount;
    @TableField("favorite_count")
    @Schema(description = "收藏数")
    private Long favoriteCount;
    @TableField("description")
    @Schema(description = "视频描述")
    private String description;
    @TableField("duration")
    @Schema(description = "视频时长（单位：秒）")
    private Integer duration;
    @TableField("audit_status")
    @Schema(description = "审核状态：0-待审核，1-通过，2-未通过，3- 作废，4-审核中")
    private Integer auditStatus;
    @TableField("visibility")
    @Schema(description = "是否公开：0-私密，1-公开")
    private Integer visibility;
    @TableField("role_level")
    @Schema(description = "用户角色等级")
    private String roleLevel;
}

